iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 11
0

簡介

Spark 是一個開源的叢集運算框架,並延伸了流行的MapReduce運算框架並提供其他高效率的計算應用,與 Hadoop 不同的是Hadoop MapReduce在執行運算時,需要將中間產生的數據,儲存在硬碟中。然而磁碟I/O往往是效能的瓶頸,因此會有讀寫資料延遲的問題。
Hadoop

Spark是基於記憶體內的計算框架。Spark在運算時,將中間產生的資料暫存在記憶體中,因此可以加快執行速度。尤其需要反覆操作的次數越多,所需讀取的資料量越大,則越能看出Spark的效能。
Spark

跟傳統的 Hadoop 比較起來,Spark 在記憶體內執行程式的運算速度,做到比 Hadoop MapReduce 的運算速度快上100倍,即便是執行程式於硬碟時,Spark 也能快上10倍速度。

在使用 Spark 要搭配叢集管理和分散式儲存系統,Spark 支援 local 運算,即在本機端做運算,使用叢集運算的話,可搭配 Hadoop YARN 或是 Apache Mesos 叢集管理。

分散式儲存方面,Spark 支援 Amazon S3, HDFS, Openstack Swift等介面。

架構

spark
Spark 除了有豐富的函式庫,也對 Python, Java, Scala, SQL提供了相同一致的 API :

  • Spark Core
    Spark Core 包含了一些基礎功能,如工作排程 記憶體管理等,而 Spark 主要的程式抽象化結構 - RDD (Resilient Disributed Datasets 彈性分散式資料集) 的 API 也是定義在 Spark Core 中。

  • Spark SQL
    Spark SQL 是處理結構化資料所產生的元件,它允許使用者使用如同 Apache Hive 一樣透過 SQL 語法做資料查詢,除了提供 SQL 使用介面外,Spark SQL 也允許開發人員將 SQL 查詢與其他 RDD 所支援的資料處理方式一起使用。

  • Spark Streaming
    顧名思義,Spark Streaming 是一個在處理即時串流資料的元件,例如 web server 所產生的 log,或是服務狀態的變化,Spark Streaming 提供處理這類資料的 API。

  • MLlib
    Spark MLlib 提供了常見的 machine learning 函式庫,在 MLlib 裡面除了常見的分類分群和迴歸之外,也提供了模型評估和資料導入的功能。

  • GraphX
    這是用來在 Spark 處理圖像相關資料及進行分散式圖像處理的函式庫,GraphX 提供了很多處理圖像的操作,如subgraph 和 mapVertices 以及常見的圖形演算法。


上一篇
Ceph 使用
下一篇
Hadoop Install(單機部署)
系列文
基於雲端Iaas基礎平台OpenStack結合Kubernetes,BlockChain,Spark,SDN24
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言